1. Field of the Invention
The present invention is related to a network file transfer protocol. In particular, the present invention is directed toward classifying and verifying static file transfer protocols.
2. Description of the Related Art
Early electronic communication systems provided quality of service (QoS) guarantees. The analog public switched telephone network (PSTN) used electrically separate wires, and then switched to digital using time-division multiplexing. Both methods provide low delay with strict bandwidth guarantees. However, neither provides for variable bandwidth demands or cost-effectively scales to the large demand placed on today's networks.
As the Internet has taken over most data communications and an increasing percentage of voice communications, stalwarts have attempted to provide the same guarantees that were possible in the older TDMA and analog networks. Attempts include ATM, IETF IntServ, and IETF DiffServ (DS). ATM is still used today for routing aggregate traffic, but it has not been used as originally envisioned: as an end-to-end solution for providing guarantees to individual telephone calls, video streams, file transfers, and other multimedia sessions.
These QoS architectures have failed for various reasons, among them lack of an appropriate business model, management complexity, computational cost, and state maintenance overhead. When coupled with falling bandwidth costs, Internet Service Providers (ISPs) have chosen the alternative of over-provisioning bandwidth.
Peer-to-peer file sharing applications such as Gnutella, E-Mule, and BitTorrent when unchecked tend to behave incompatibly with over-provisioning, since they consume all available bandwidth. Peer-to-peer file sharing comprises about 60% of today's Internet traffic with the bulk generated by a handful of customers. As such, some ISPs strictly rate limit file sharing traffic in order to reduce the impact to loss-sensitive IP telephony and web traffic.
Asynchronous Transfer Mode (ATM), IntServ, and the Public-Switched Telephone Network (PSTN) provide service guarantees by first establishing a circuit or virtual circuit and reserving resources at every switch along the circuit's path. In PSTN, the circuits extend all the way to individual telephones and thus state maintained in each switch grows proportional to the number of telephone calls traversing the switch. ATM provides a richer set of service semantics appropriate for data, video, and voice, but likewise requires state proportional to the number of virtual circuits traversing a switch. ATM survives today by providing virtual circuits only for highly-aggregated traffic and without the service semantics appropriate to individual video or voice calls.
The Internet conversely maintains no per-call (per-flow) state. Instead of associating each call with a circuit, the Internet breaks content into individually-routed packets, each bearing a source and destination address. Thus, Internet routers have far less state maintenance and signaling overhead. IntServ was designed as the Internet's answer to ATM and the PSTN, but it too required maintaining per-flow state.
To reduce IntServ's state maintenance, the IETF proposed Differentiated Services (DiffServ), motivated principally by Van Jacobson et al., and David Clark et al. DiffServ defines classes analogous to the classes used by the United States Postal Service. In the postal system, every package bears a stamp or tag. Packages marked for overnight delivery are given priority sorting, and then flown to the destination city. Packages bearing first class stamps typically travel by cheaper and slower ground-based transportation. With differentiated service, every packet entering the network is marked to identify its class. More specifically, as shown in FIG. 1, every packet enters through an edge router, which meters, marks, rate limits, and polices traffic. Meters, markers, rate limiters, and policers are all traffic conditioning building blocks. If the network is adequately provisioned and traffic properly conditioned at the entry points then statistical service guarantees are possible. An example of an edge router includes Cisco's 7507 router.
As illustrated in FIG. 1a, ingress and egress edge routers sit in the path of packets entering each service provider's network. The edge router marks by inserting a number called a “codepoint” in the DS field in each packet's IP header. In the illustrated example, the edge stamps the packet with the number corresponding to Expedited Forwarding (EF). EF prescribes low-delay with strict rate limits, and is thus often proposed for use for Voice-over-IP. Interior routers then direct EF marked packets into a high priority queue separate from Best Effort (BE) packets. BE prescribes only that the network will give its “best effort” to deliver the packets, but packets may be lost, duplicated, or reordered and there is no guarantee on delay or bandwidth. Best Effort is most appropriate for applications that tolderate loss and delay such as mail and long file transfers. In the Internet and in this illustration, BE applies to all traffic that is not intentionally given special treatment. The intermediate routers do not distinguish between connections, and do not maintain per-flow state or queues. Intermediate edge routers may remark, delay, or drop packets to enforce policy.
FIG. 1b illustrates the building blocks found in a typical edge router sitting near end-users. As packets enter the edge router, they are first classified based on the source and destination IP address found in the packet's IP header and the source and destination port found in the packet's TCP header. The lookup returns the appropriate service class for the packet. The service class is then mapped onto the appropriate codepoint which is stamped into the DiffServ field in the packet's IP header and the source and destination port found in the packet's TCP header. The lookup returns the appropriate service class for the packet. The service class is then mapped onto the appropriate codepoint which is stamped into the DiffServ field in the packet's IP header. In this example, the edge router then steers ERF marked packets into per-connection queues that are appropriately rate-limited by the scheduler to ensure each connection adheres to a particular service descriptor, in this case specifying the connection's maximum rate. In this example, all best effort packets are dumped in a single lower-priority queue.
Using DiffServ, only edge routers are allowed to maintain per-flow state. Interior routers implement scheduling or buffer management components that maintain only per-class state. Since the number of classes is small and fixed, DiffServ reduces the amount of state routers must maintain compared to switches in ATM or public-switched telephone networks.
DiffServ suffers from the problem that neighboring service provider networks must either extend trust to create a single interior network spanning service-provider network boundaries, or they must place an edge router(s) at the peering point between the two networks. However, the peering point is one of the most heavily-trafficked points on the network and among the least capable of maintaining per-flow state.